package pos.dominio;

import java.util.*;
import pos.dato.JDBCUsuarioDAO;



public class UsuarioManager implements IUsuarioManager {

    private static IUsuarioManager ps;
    private List<Usuario> usuarios;
    private JDBCUsuarioDAO udao;

    public static synchronized IUsuarioManager getInstance() {
        if (ps == null)
            ps = new UsuarioManager();
        return ps;
    }

    private UsuarioManager() {
        usuarios = (new JDBCUsuarioDAO()).selectAllUsuarios();
        udao=new JDBCUsuarioDAO();    
    }
   
    /* (non-Javadoc)
	 * @see pos.dominio.IUsuarioManager#getUsuarioPorID(java.lang.String)
	 */
    @Override
	public Usuario getUsuarioPorID(String usuarioID) {
        Usuario result = null;
        for (Iterator<Usuario> iter = usuarios.iterator(); iter.hasNext();) {
            Usuario p = (Usuario) iter.next();
            if (p.getUsuarioID().compareTo(usuarioID) == 0) {
                result = p;
            }
        }
        return result;
    }
    
    /* (non-Javadoc)
	 * @see pos.dominio.IUsuarioManager#insertUsuario(pos.dominio.Usuario)
	 */
    @Override
	public boolean insertUsuario(Usuario u){
    	return udao.insert(u);
    }

    /* (non-Javadoc)
	 * @see pos.dominio.IUsuarioManager#getUsuarios()
	 */
    @Override
	public List<Usuario> getUsuarios() {
        return usuarios;
    }
    /* (non-Javadoc)
	 * @see pos.dominio.IUsuarioManager#deleteUsuario(java.lang.String)
	 */
    @Override
	public boolean deleteUsuario(String id){
    	return udao.delete(id); 
    }
    /* (non-Javadoc)
	 * @see pos.dominio.IUsuarioManager#updateUsuario(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
	 */
    @Override
	public boolean updateUsuario(String nombre,String apellidos,String email,String direccion,String ciudad,String id){
    	return udao.update(nombre,apellidos,email,direccion,ciudad,id);
    }

  }